home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Magnum One
/
Magnum One (Mid-American Digital) (Disc Manufacturing).iso
/
d20
/
pxdos21a.arc
/
POLYXPLN.DOC
< prev
Wrap
Text File
|
1991-05-12
|
25KB
|
551 lines
PolyXarc Configuration File Explanation
Public Domain by Jeffrey J. Nonken
12 May, 1991
In this document I pick apart the configuration file that I
distribute with PolyXarc, and explain some details about
different archivers. I figured this would enhance my explanations
in POLYXARC.DOC, which aren't as clear as I'd like them to be.
Note that while I tried to be reasonably accurate, the version
numbers and some other niggling details should not be considered
completely reliable. Relax; this isn't a history test, it's just
an overview of how PolyXarc interacts with various archivers.
ARC
===
ARC files use different compression methods, depending on what
program you're using and what it decides is the best method to
use. These compression methods are represented in the .ARC files
with what I call "levels", and what SEA calls "header types".
Levels up to 9 are:
Level Common name Compression method
---- ----------- ------------------
1 stored No compression (short header)
2 Stored No compression (standard header)
3 Packed Repeated Character Compression
4 Squeezed RCC followed by Huffman
5 crunched 12 bit Lempel-Ziv
6 crunched RCC followed by 12 bit Lempel-Ziv
7 crunched RCC followed by 12 bit Lempel-Ziv, alternate
hash function
8 Crunched RCC followed by variable 12 bit Lempel-Ziv
with dynamic reset
9 Squashed variable 13 bit Lempel-Ziv with dynamic
or Deviant reset
PKware and Nogate Consulting call level 9 "Squashed"; SEA calls
level 9 "Deviant". However, it is the same format in either case.
Level 10 is used differently by two different programs: PAK,
which calls it "Crushed", and ARC+PLUS (also known as ARC 7.0),
which doesn't seem to call it anything (at least, not in any
documents that I've read). These two programs use different
compression algorithms, and therefore archives with files
compressed at level 10 are not compatible between the two. Level
11 is as of this writing only used by PAK 2.51 and is called
"Distilled".
PolyXarc Configuration File page 1
Who Can Decompress What
| 1 2 3 4 5 6 7 8 9 10 11
----------+------------------------------------------------------
ARC 4.5 | x x x x x x x
ARC 5.0 | x x x x x x x x
ARC 6.0 | x x x x x x x x x
ARC 7.0 | x x x x x x x x x 1
PKUNPAK | x x x x x x x x x
PAK 1.0 | x x x x x x x x x 2
PAK 2.5 | x x x x x x x x x 2 x
x = can decompress
1 = ARC+PLUS version of level 10
2 = PAK version of level 10
ARCE is equivalent to ARC 5.0. XARC is equivalent to ARC 7.0
(ARC+PLUS). PKUNPAK is the same thing as PKXARC 3.60.
As if that weren't confusing enough: as of ARC version 6.0, SEA
came out with an extended format. Header types 1-19 are reserved
for compression methods (what I call compression levels); header
types 20 and up are reserved for extended information. This may
include extended name and path information; extended date
information; icon bit maps; and so on. This is called a "version
6" format ARC file, presumably because it was introduced with ARC
version 6. As of this writing, as far as I know, only ARC
versions 6 and 7 can dearchive a version 6 file.
So we have to deal with both ARC levels and ARC versions.
Fortunately for our sanity, only ARC+PLUS can create an ARC+PLUS-
type level 10 header, and it can only do it in a version 6 ARC
file, which according to Thom Henderson will always contain
version 6 headers (type 20 and up). This means we can tell the
difference between PAK level 10 and ARC+PLUS level 10 compression
by checking the file for version 6 headers: if it's got version 6
headers and level 10 compression, it's ARC+PLUS; if it's only got
version 5 headers and level 10 compression, it's PAK. This is
exactly how PolyXarc tells the difference.
In fact, when PolyXarc goes through the ARC file, it looks for
both version and highest level. If it finds the archive is a
version 6 file, it simply ignores all the version 5 dearchivers
when it looks for the proper one to use.
The following paragraphs describe the ARC description lines in
POLYXARC.CFG. The examples I give assume you are attempting to
decompress a file called TEST.ARC. Since the filenames are
usually optional, I will put "[*.*]" where the filenames go.
ARC level overwrite extract command_template
---- ----- --------- ------- ----------------
ARC 8 w "" arc e%2 %3 %4
This defines an ARC 5.x template. ARC 5 will extract up to level
8. Normal syntax is "arc e TEST.ARC [*.*]"; overwrite mode will
use "arc ew TEST.ARC [*.*]".
PolyXarc Configuration File page 2
ARC level overwrite extract command_template
---- ----- --------- ------- ----------------
ARC 8 /r "" arce %3 %4 %2
This defines a template for ARCE, which is a fast ARC extractor
written in assembly. It is the equivalent of ARC version 5.
Normal syntax is "arce TEST.ARC [*.*]"; overwrite mode will use
"arce TEST.ARC [*.*] /r".
ARC level overwrite extract command_template
---- ----- --------- ------- ----------------
ARC 9 /r "" pkxarc %2 %3 %4
This template is for PKXARC, which can extract up to level 9
compression. Normal syntax is "pkxarc TEST.ARC [*.*]"; overwrite mode
will use "pkxarc /r TEST.ARC [*.*]".
ARC level overwrite extract command_template
---- ----- --------- ------- ----------------
ARC 9 /r "" pkunpak %2 %3 %4
This template is for PKUNPAK, which can extract up to level 9
compression. PKUNPAK is version 3.61 of PKXARC; there are no real
differences between them. Normal syntax is "pkunpak TEST.ARC
[*.*]"; overwrite mode will use "pkunpak /r TEST.ARC [*.*]".
ARC level overwrite extract command_template
---- ----- --------- ------- ----------------
ARC 11 /WA "" pak /e %2 %3 %4
This template is for PAK, which can extract up to level 11.
However, PAK will not extract level 10 files if the archive was
made by ARC+PLUS, but only if it was made by PAK. Normal syntax
is "PAK /e TEST.ARC [*.*]"; overwrite mode will use "PAK /e /WA
TEST.ARC [*.*]".
ARC level overwrite extract command_template
---- ----- --------- ------- ----------------
ARC 11 /WA /WO pak /e %1%2 %3 %4
This is an alternate syntax for PAK 2.51. If you use this line,
if PAK encounters a file already on disk that it is trying to
extract from the archive, if the archive file is newer, PAK will
replace the older file. Normally without the /WO parameter PAK
will stop and ask whether you want to overwrite. In this case
syntax for extraction will be "pak /e /WO TEST.ARC [*.*]", and
for overwrite will be "pak /e /WA TEST.ARC [*.*]".
PolyXarc Configuration File page 3
ARC level overwrite extract command_template
---- ----- --------- ------- ----------------
ARC6 9 w "" arc e%2 %3 %4
This defines an ARC 6.0 template. ARC 6 will extract up to level
9. In addition, it can extract from version 6 ARC files up to
level 9. Normal syntax is "arc e TEST.ARC [*.*]"; overwrite mode
will use "arc ew TEST.ARC [*.*]".
ARC level overwrite extract command_template
---- ----- --------- ------- ----------------
ARC6 10 /o ! xarc %2 %3 %4
This defines a template for XARC. XARC is a free-distribution
unarchiver for ARC 7.0, also called ARC+PLUS. XARC will extract
up to level 9, and will also extract version 6 ARC files up to
level 10. Note that XARC will not extract PAK level 10 files, but
only ARC+PLUS level 10 files. Normal syntax is "xarc TEST.ARC
[*.*]"; overwrite mode will use "xarc /o TEST.ARC [*.*]".
ARC level overwrite extract command_template
---- ----- --------- ------- ----------------
ARC6 10 o ! arc e%2 %3 %4
This defines a template for ARC 7.0 (ARC+PLUS). ARC+PLUS will
extract up to level 9, and will also extract version 6 ARC files
up to level 10. Note that ARC+PLUS will not extract PAK level 10
files, but only ARC+PLUS level 10 files. Normal syntax is "arc e
TEST.ARC [*.*]"; overwrite mode will use "arc eo TEST.ARC [*.*]".
OTHER ARCHIVERS
===============
There is a plethora of formats other than ARC. Every year or so
sees a new archiver, usually with a new format, and each time it
seems that improvements have been made on the speed or amount of
compression or both. And each format is incompatible with all the
others.
The strength of PolyXarc is in the fact that you can program it
to recognize most new formats simply by adding a line in the
configuration file. Most archivers leave a "signature"; some
constant set of values or characters imbedded in the archive file
for distinguishing one type of archive from another. PolyXarc can
be configured to read that signature and determine which
dearchiver to use to access the files in the archive.
Thus come the Signature lines in the configuration file. Each one
shows not only the command template, but also the signature and
where to find it.
For these examples I will use TEST.ext as the archive name, where
ext is the archiver's native extension.
PolyXarc Configuration File page 4
DWC
---
First we'll tackle DWC. DWC stands for David W. Cooper, the
author of the program. Originally DWC source was available, but
Mr. Cooper sold his program to a commercial interest; versions
written since then have not had source available. In fact, I have
only seen one version at all since then. DWC also requires that
all its archives have ".DWC" as an extension. It also is unusual
because it has its signature at the end of the file, rather than
at or near the beginning of the file as most archivers do. That
can cause problems for recognition after an XMODEM-type download,
because the end of a file transferred via XMODEM is padded with
extra characters, and the signature is no longer at a fixed
location from the end of the file. Since DWC isn't particularly
fast and doesn't make particularly small archives, all this makes
it of rather limited use.
You'll notice that the signature, "DWC", is shown to be at -3.
That means that PolyXarc should count backwards from the end of
the file by three characters. That count actually starts from
just past the end of the file; the last character in the file
would be at -1. So "DWC" is actually the last three characters of
the file.
SIGNATURE offset signature overwrite extract command_template
--------- ------ --------- --------- ------- ----------------
SIGNATURE -3 DWC w "" dwc e%2 %3 %4
Normal syntax is "dwc e TEST.ARC [*.*]"; overwrite mode will use
"dwc ew TEST.ARC [*.*]".
LHARC
-----
LHARC, written by a Japanese gentleman named Haruyasu Yoshizaki,
came out around 1990. It stopped at version 1.13 for a while, but
in 1991 Yoshi came out with version 2.05. LHARC creates some of
the smallest archives of all, but unfortunatly is very, very
slow. However, verion 2.0x is a great improvement over 1.1x; it
not only has a new, smaller compression algorithm, but is much
faster (though still slow), and can even create backwards-
compatible files that are slightly smaller than the original
program made. It is now called LHA.
LHARC's signature is actually the compression method flag for the
first file. Fortunatly that flag is always in the same place.
Flags seen so far are "-lh0-" through "-lh5-", so we just look
for the first three characters, "-lh"; as long as Yoshi doesn't
change the way the archiver works, that should be able to handle
LHARC files forever.
PolyXarc Configuration File page 5
SIGNATURE offset signature overwrite extract command_template
--------- ------ --------- --------- ------- ----------------
SIGNATURE 2 -lh /mc "" lharc e %2 %3 %4
SIGNATURE 2 -lh /mc "" lha e %2 %3 %4
Normal syntax is "lharc e TEST.LZH [*.*]" or "lha e TEST.LZH
[*.*]". Overwrite syntax is "lharc e /mc TEST.LZH [*.*]" or "lha
e /mc TEST.LZH [*.*]"
XARCMAC
-------
There is an ARC-like program available for the MacIntosh
computer. An extractor is available for the IBM family, called
"XARCMAC". The run-time help claims the files are ARC compatible,
but none of the ARC programs I have will extract files from it.
Fortunatly it has a unique signature; instead of storing a hex 1A
as the first byte of the file, which ARC does, this format has a
1B. XARCMAC -- at least, the version given to me -- will only
extract and list files, and has no overwrite mode. It is really
only useful for extracting files created on a MacIntosh by the
one particular program.
SIGNATURE offset signature overwrite extract command_template
--------- ------ --------- --------- ------- ----------------
SIGNATURE 0 <1B> "" "" xarcmac e %3 %4
Notice that this signature has angle-brackets <> around the
signature. That means it gets treated as a hex value, rather than
text. The only syntax PolyXarc will create with this is "xarcmac
e TEST.MAC [*.*]".
ZOO
---
Though relatively slow and cumbersome, Rahul Dhesi's program ZOO
has been ported onto a number of platforms and is quite popular
in some circles.
This one is awfully straightforward; the signature is "ZOO" and
is at the very beginning of the file.
SIGNATURE offset signature overwrite extract command_template
--------- ------ --------- --------- ------- ----------------
SIGNATURE 0 ZOO o "" zoo x%2 %3 %4
Normal syntax is "zoo x TEST.ZOO [*.*]"; overwrite mode is "zoo
xo TEST.ZOO [*.*]". Note that the overwrite command is the letter
O, not the number 0.
There is an extract-only program available on most platforms,
called "BOOZ". I do not presently have a copy of it, but I'm sure
the syntax would be quite simple to add to PolyXarc.
PolyXarc Configuration File page 6
ARJ
---
This is a new archiver; version 1.00 was released early in 1991.
It creates very small archives quickly. The author also claims to
be working on a program called ARJX that is supposed to make even
smaller files even more quickly. As it stands, ARJ is one of the
best archivers for speed and size.
SIGNATURE offset signature overwrite extract command_template
--------- ------ --------- --------- ------- ----------------
SIGNATURE 0 <60EA> -y "" arj e %2 %3 %4
Normal syntax is "arj e TEST.ARJ [*.*]"; overwrite syntax is "arj
e -y TEST.ARJ [*.*]".
ZIP
---
PKZIP is the latest offering from Phil Katz. PKZIP is generally
recognized as creating the smallest archives, and being the
fastest archiver for the compression ratio, though some of the
other new programs and new versions of old programs have been
giving it a run for its money. LHARC also sometimes makes smaller
files, though nobody has been able to positively demonstrate a
clear edge of one over the other.
PAK 2.51 now also includes ZIP capability. This allows a lot of
in one program. However, PKZIP is still faster and
still usually produces smaller archives.
SIGNATURE offset signature overwrite extract command_template
--------- ------ --------- --------- ------- ----------------
SIGNATURE 0 PK -o "" pkunzip %2 %3 %4
SIGNATURE 0 PK /WA "" pak e /z %2 %3 %4
SIGNATURE 0 PK /WA /WO pak e /z %1%2 %3 %4
See the ARC section (or PAK 2.51 documentation) for notes on
PAK's overwrite modes. Normal syntax is: "pkunzip TEST.ZIP [*.*]"
or "pak e /z TEST.ZIP [*.*]" or "pak e /z /WO TEST.ZIP [*.*]".
Overwrite syntax is "pkunzip -o TEST.ZIP [*.*]" or "pak e /z /WA
TEST.ZIP [*.*]". Note that the /z is not necessary; once PAK
determines the file type, it will correctly treat it as a .ZIP
file.
PolyXarc Configuration File page 7
HYPER
-----
Hyper is a program that seems to be fairly popular in Europe.
Hyper version 2.5 doesn't seem to have a fixed signature, except
a 1A in the first byte. Unfortunately, that conflicts with ARC
format files. Fortunately PolyXarc checks for ARC stuff last, so
we can work this out. The second and third bytes are the
compression type for the first file in the archive; for version
2.5 there are only two archive types, HP and ST. In order to
recognize Hyper I've put both combinations into separate
Signature lines:
SIGNATURE offset signature overwrite extract command_template
--------- ------ --------- --------- ------- ----------------
SIGNATURE 0 <1A>HP "" "" hyper -x %3 %4
SIGNATURE 0 <1A>ST "" "" hyper -x %3 %4
You must have both lines in your .CFG file in order to recognize
all Hyper files; these are not alternate examples. Notice that
this signature has angle-brackets <> around the first byte of the
signature, but two text characters follow; mixing text with hex
values is perfectly acceptable. The only syntax PolyXarc will
create with this is "hyper -x TEST.HYP [*.*]". Hyper 2.5 does not
have an automatic overwrite mode.
MDCD
----
MDCD is an archiver that I've only just heard about; as I write
this I haven't been able to get a copy. For the time being I'll
trust the person who gave me this Signature line, and verify it
when I get a chance:
SIGNATURE offset signature overwrite extract command_template
--------- ------ --------- --------- ------- ----------------
SIGNATURE 0 MDmd r d mdcd %1%2 %3 %4
MDCD is the only archiver I've ever found that had a separate
switch for extract without overwrite and extract with overwrite.
However, it justifies my decision to separate the definitions.
Normal syntax is "mdcd d TEST.??? [*.*]"; overwrite syntax is
"mdcd r TEST.??? [*.*]". Sorry, I don't know what the actual
default extension is.
- - -
Well, that concludes our little lecture. If you have any
questions about the options I've chosen, or the syntaxes for the
different archivers, I recommend you look at the documentation
that came with the archivers. If you're still confused, try using
the examples in POLYXARC.CFG. Make sure each archiver is in your
execution path someplace.
PolyXarc Configuration File page 8
If you have an archiver I haven't covered here, please let me
know. Especially, if it isn't a commercial product, send me a
copy of the archiver; I'm always interested in adding new ones,
and it's easiest to support and test if I have a copy available
to run.
Thanks to Thom Henderson for providing me with information about
his products, ARC and ARC+PLUS. Thanks to Konrad Knauer for
telling me about MDCD. Thanks to Johan Zwiekhorst for sending me
a copy of Hyper.
Jeffrey J. Nonken
1706 Cherrie Circle
Blue Bell, Pa. 19422-3412
BBS: (215)279-9799 HST/v.32
Fidonet: 1:273/715
Internet: Jeffrey.Nonken@f715.n273.z1.fidonet.org
Note: the above Snailmail address and phone number may change in
the next few months. Please use my Fidonet or Internet address,
or check the latest Nodelist for the current information.
As I write this I expect to be at 1145 Pleasant Avenue, Wyndmoor,
Pa. 19118 by the end of July. Of course, things are never as easy
as they seem, so it's best to check before you send anything
there. If you aren't sure where to send Snailmail to, you can
always use this address:
Jeffrey J. Nonken
507 Ave. Presidio
San Clemente, Ca. 92672
PolyXarc Configuration File page 9